/*
  Initialization of adventure play variables
*/
#include	<string.h>
#include	<stdio.h>
#include	"advent.h"		/* #define preprocessor equates	 */
#define EXTERN				/* define, not declare, in advdec.h */
#include	"advdec.h"

int plac[MAXOBJ] = {
      0,   0,   3,   8,  10,  11,   0,  14,   0, 148,	/*   0 -   9 */
     96,  19,  17, 101, 103,   0, 106,   0,   0, 238,	/*  10 -  19 */
    238, 117, 190, 109,  25,  23, 111,  35,   0,  97,	/*  20 -  29 */
      0, 119,   0, 117,   0, 130,   0, 126, 140,   0,	/*  30 -  39 */
     96,  94, 158, 160, 188,   0, 155, 174, 166, 228,	/*  40 -  49 */
     18, 204,  27,  29,  30,   0,  92, 168,  97, 100,	/*  50 -  59 */
    101,   0, 119, 127, 130, 141, 144, 205,  28, 182,	/*  60 -  69 */
    225, 230,   0, 147, 241, 248,   0,   0,   0,   0,	/*  70 -  79 */
      0,   0,   0,   0,   0,   0,   0, 193, 102,   0,	/*  80 -  89 */
    159, 141, 172, 188, 189,   0,   0, 193, 227, 174,	/*  90 -  99 */
      0,  13, 238, 217, 171,   0, 146, 159,   3,   0,	/* 100 - 109 */
      0,   0,   0,   3, 180,  39,   5,   0, 110, 169,	/* 110 - 119 */
    200
};

int fixd[MAXOBJ] = {
      0,   0,   0,   9,   0,   0,   0,  15,   0,   0,	/*   0 -   9 */
      0,  -1,  27,  -1,   0,   0,   0,  -1,   0,   0,	/*  10 -  19 */
      0, 122, 235,  -1,  -1,  67,  -1, 110,   0,  -1,	/*  20 -  29 */
     -1, 121,   0, 122,   0,  -1,  -1,  -1,  -1,   0,	/*  30 -  39 */
     -1,  -1, 166, 167, 189,   0,   0,  -1,   0, 229,	/*  40 -  49 */
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,	/*  50 -  59 */
      0,   0, 121,   0,  -1,   0,   0,   0,   0,   0,	/*  60 -  69 */
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,	/*  70 -  79 */
      0,   0,   0,   0,   0,   0,   0,  -1, 194,  -1,	/*  80 -  89 */
      0,  -1, 174,  -1,  -1,   0,   0,  -1,  -1,  -1,	/*  90 -  99 */
      0,   0,   0,  -1,  -1,  -1,   0,   0,   0,   0,	/* 100 - 109 */
      0,   0,  -1,   0,   0,  -1,  -1,   0,   0,   0,	/* 110 - 119 */
      0
};

struct playinfo g = {
    0,							/* turns */
    1,							/* loc */
    1,							/* oldloc */
    1,							/* oldloc2 */
    1,							/* newloc */
    {							/* loc_attrib[MAXLOC] */
	  0,   73,   65,   73,   73,			/*   0 -   4 */
	 65,   65,   73, 1601,   33,			/*   5 -   9 */
	 32,   32,   32, 1824,   32,			/*  10 -  14 */
	  0,    2,    0,    0, 2816,			/*  15 -  19 */
	  2,    2,    2,    0,   10,			/*  20 -  24 */
	  0,    2,    0,    0,    0,			/*  25 -  29 */
	  0,    2,    2,    8,    0,			/*  30 -  34 */
	  0,    0,    0,    8,    0,			/*  35 -  39 */
	  2,    0,  256,  256,  256,			/*  40 -  44 */
	256,  272,  272,  272,  256,			/*  45 -  49 */
	256,    0,  256,  256,  272,			/*  50 -  54 */
	256,  272,    0,   16,    2,			/*  55 -  59 */
	  0,    0,    0,    0,    0,			/*  60 -  64 */
	  0,    0,    0,    0,    0,			/*  65 -  69 */
	  0,    0,    0,    0,    0,			/*  70 -  74 */
	  0,    0,    0,    0,    2,			/*  75 -  79 */
	256,  256,  272,    0,    0,			/*  80 -  84 */
	 16,  272,    0,    0,    2,			/*  85 -  89 */
	  2,    0,    0,    0,    0,			/*  90 -  94 */
	  8,    0,    0, 1280,  513,			/*  95 -  99 */
	513,  512,    0,    0,    0,			/*  00 -  04 */
	  0,    0,    0,  768,    0,			/* 105 - 109 */
	  0,    0,    0,    8,    0,			/* 110 - 114 */
	  1,    1,    0,    0,    0,			/* 115 - 119 */
	  0,    0,   16,   16,   16,			/* 120 - 124 */
	 16,   17,   16,   16,   16,			/* 125 - 129 */
	 16,    0,    0,    0,    0,			/* 130 - 134 */
	  0,    0,    0,    0,    0,			/* 135 - 139 */
	  0, 1040,   16,    0,    0,			/* 140 - 144 */
	  2,   65,   65,   65,   65,			/* 145 - 149 */
	 65,   65,   65,   65,   65,			/* 150 - 154 */
	 65,    3, 2625, 2113,   65,			/* 155 - 159 */
	 65,    3,    3,    3,    3,			/* 160 - 164 */
	  3,   41,   41,    9,    9,			/* 165 - 169 */
	  0,    0,    0,    0,    0,			/* 170 - 174 */
	  0,    0,    0,    2,    0,			/* 175 - 179 */
	  0,    2,    0,    0,    0,			/* 180 - 184 */
	  0,    0,    0,    0,   16,			/* 185 - 189 */
	  0,    0,    9,    0,    0,			/* 190 - 194 */
	  0,    0,    0,    9,    2,			/* 195 - 199 */
	  1,    1, 2304,    0,    0,			/* 200 - 204 */
	  0,    8,    8,    8,    0,			/* 205 - 209 */
	  0,    0,    1,    0,    9,			/* 210 - 214 */
	  0,    0,   12,    0,    0,			/* 215 - 219 */
	  0,    0,    0,    0,    0,			/* 220 - 224 */
	  0,    2, 2625,   73,   73,			/* 225 - 229 */
	  0,    2,    2,    2,    2,			/* 230 - 234 */
	  0,    0,    2,   65, 3137,			/* 235 - 239 */
	 65,   65,   65,   65,   65,			/* 240 - 244 */
	 65,   65,   65,   65	  			/* 245 - 249 */
    },							/* loc_attrib[MAXLOC] */
    {0 },						/* place[MAXOBJ] */
    {0 },						/* fixed[MAXOBJ] */
    {							/* weight[MAXOBJ] */
	0, 0, 1, 0, 1, 2, 2, 0, 0, 2,			/*   0 -   9 */
	1, 0, 0, 0, 7, 7, 1, 0, 0, 2,			/*  10 -  19 */
	1, 0, 0, 0, 0, 0, 0, 0, 3, 0,			/*  20 -  29 */
	0, 0, 0, 0, 0, 0, 0, 0, 0, 3,			/*  30 -  39 */
	0, 0, 0, 0, 0, 0, 1, 1, 0, 0,			/*  40 -  49 */
	6, 1, 2, 2, 3, 5, 4, 3, 2, 3,			/*  50 -  59 */
	4, 1, 3, 1, 3, 2, 1, 1, 2, 2,			/*  60 -  69 */
	2, 3, 1, 1, 3, 1, 0, 0, 0, 0,			/*  70 -  79 */
	0, 2, 2, 2, 2, 2, 2, 0, 0, 0,			/*  70 -  79 */
	1, 0, 0, 0, 0, 3, 2, 0, 0, 0,			/*  80 -  89 */
	0, 2, 1, 0, 0, 0, 1, 1, 2, 0,			/* 100 - 109 */
	3, 3, 0, 1, 1, 0, 0, 0, 3, 1,			/* 110 - 119 */
	2, 0, 0						/* 120 - 129 */
    },							/* weight[MAXOBJ] */
    {0 },						/* atloc[MAXLOC] */
    {0 },						/* link[MAXOBJ * 2] */
    {0 },						/* holder[MAXOBJ] */
    {0 },						/* hlink[MAXOBJ] */
    {0 },						/* visited[MAXLOC] */
    {0 },						/* prop[MAXOBJ] */
    {							/* obj_state[MAXOBJ] */
	    0,     0, 32800,    26, 32770,		/*   0 -   4 */
	   32,    32,  8192,     0,     0,		/*   5 -   9 */
	   32,   512,     0,   256,   770,		/*  10 -  14 */
	  770,   288,   512,     0,   160,		/*  15 -  19 */
	32802,     0,     0,     0,   128,		/*  20 -  24 */
	    0,     0,     0,    32,  8192,		/*  25 -  29 */
	  512,   512,     0,   512,     0,		/*  30 -  34 */
	  512,   256,     0, 32768,  8224,		/*  35 -  39 */
	    0,    18,    26,    26,     2,		/*  40 -  44 */
	    0,  8320, 18464, 32768,     0,		/*  45 -  49 */
	16384, 16416, 16416, 26656, 24608,		/*  50 -  54 */
	49240, 24608, 16384, 49184, 16416,		/*  55 -  59 */
	16416, 16416, 16384, 16544, 16442,		/*  60 -  64 */
	16416, 18464, 26656, 16416, 16416,		/*  65 -  69 */
	49184, 49154, 18464, 18464, 16416,		/*  70 -  74 */
	16416,     0,     0,     0,     0,		/*  75 -  79 */
	    0,     0,     0,     0,     0,		/*  80 -  84 */
	    0,     0,  8704,     0,     0,		/*  85 -  89 */
	    0,     0,     0,     0, 32768,		/*  90 -  94 */
	    0,   128,     0,     0,     0,		/*  95 -  99 */
	    0,   160,  8224,     0,     0,		/* 100 - 104 */
	    0,  8352,  8352, 32870,     0,		/* 105 - 109 */
	16674,   258, 32858,   288,    32,		/* 110 - 114 */
	  256,     0,     0, 32866, 16416,		/* 115 - 119 */
	16416,     0,     0				/* 120 - 123 */
    },							/* obj_state[MAXOBJ] */
    {							/* points[MAXOBJ] */
	   0,        0,        0,        0,        0,	/*   0 -   4 */
	   0,        0,        0,        0,        0,	/*   5 -   9 */
	   0,        0,        0,        0,        0,	/*  10 -  14 */
	   0,  1000108,        0,        0,        0,	/*  15 -  19 */
	   0,        0,        0,        0,        0,	/*  20 -  24 */
	   0,        0,        0,        0,        0,	/*  25 -  29 */
	   0,        0,        0,        0,        0,	/*  30 -  34 */
	   0,        0,        0,        0,        0,	/*  35 -  39 */
	   0,        0,        0,        0,        0,	/*  40 -  44 */
	   0,        0, -3000112,        0,        0,	/*  45 -  49 */
    -2000055, -2000112, -2000112, -1000112, -5000112,	/*  50 -  54 */
     5000003, -3000112, -2000055,  2000003, -3000112,	/*  55 -  59 */
    -4000112, -4000112,  3000003, -1000112, -4000112,	/*  60 -  64 */
    -4000112, -2000112, -3000112, -1000112, -1000112,	/*  65 -  69 */
    -2000112, -3012055, -4000112, -1000112, -5000112,	/*  70 -  74 */
    -5000112,        0,        0,        0,        0,	/*  75 -  79 */
	   0,        0,        0,        0,        0,	/*  80 -  84 */
	   0,        0,        0,        0,        0,	/*  85 -  89 */
	   0,        0,        0,        0,        0,	/*  90 -  94 */
	   0,        0,        0,        0,        0,	/*  95 -  99 */
	   0,        0,        0,        0,        0,	/* 100 - 104 */
	   0,        0,        0,        0,        0,	/* 105 - 109 */
    -2000112,        0,        0,        0,        0,	/* 110 - 114 */
	   0,        0,        0,        0, -4000118,	/* 115 - 119 */
    -2000112,        0					/* 120 - 122 */
    },							/* points[MAXOBJ] */
    {0 },						/* hinted[HNTMAX+1] */
    {							/* hints[HNTMAX+1][5] */
	{    0,    0,   0,   0,   0 },			/*  0 */
	{    0, 9999,   4,   0,   0 },			/*  1 */
        {    0, 9999,  10,   0,   0 },			/*  2 */
        {    0, 9999,   5,   0,   0 },			/*  3 */
	{    0,    0,   0,   0,   0 },			/*  4 */
	{    0,    0,   0,   0,   0 },			/*  5 */
	{    0,    0,   0,   0,   0 },			/*  6 */
        {    0,   15,   4, 176, 177 },			/*  7 */
        {    0,    8,   5, 178, 179 },			/*  8 */
        {    0,   13,   3, 180, 181 },			/*  9 */
        {    0,    6,  10, 211, 212 },			/* 10 */
        {    0,    6,   5, 213, 214 },			/* 11 */
	{    0,    4,   2,  62,  63 },			/* 12 */
	{    0,    5,   2,  18,  19 },			/* 13 */
	{    0,    4,   2,  62, 233 },			/* 14 */
	{    0,    6,   5, 274, 275 },			/* 15 */
	{    0,   10,   5, 289, 290 },			/* 16 */
	{    0,    8,   2,  20,  21 },			/* 17 */
	{    0,    5,   2, 404, 405 }			/* 18 */
    },							/* hints[HNTMAX+1][5] */
    {0 },						/* hintlc[HNTMAX+1] */
    0,							/* tally */
    0,							/* tally2 */
    0,							/* limit */
    0,							/* lmwarn */
    0,							/* wzdark */
    0,							/* closing */
    0,							/* closed */
    0,							/* holding */
    0,							/* detail */
    0,							/* knfloc */
    30,							/* clock */
    50,							/* clock2 */
    0,							/* panic */
    { 0, 19, 27, 33, 44, 64, 114 },			/* dloc[DWARFMAX+1] */
    0,							/* dflag */
    { 0, 0, 0, 0, 0, 0, 0 },				/* dseen[DWARFMAX+1] */
    { 0, 0, 0, 0, 0, 0, 0 },				/* odloc[DWARFMAX+1] */
    18,							/* daltloc */
    0,							/* dkill */
    114,						/* chloc */
    140,						/* chloc2 */
    0,							/* bonus */
    0,							/* numdie */
    0,							/* foobar */
    0,							/* combo */
    0,							/* terse */
    5,							/* abbnum */
    100,						/* health */
    0,							/* chase */
    FALSE,						/* flg239 */
    0							/* lastglob */
};

/*
  Initialization of adventure play variables
*/
void initialize()
{
    int i;

    for (i = MAXOBJ; i > 0; i--) {
	g.fixed[i] = fixd[i];
	if (fixd[i] > 0) {
	    drop(i + MAXOBJ, fixd[i]);
	    drop(i, plac[i]);
	}
	if ((plac[i] != 0) && (fixd[i] <= 0))
	    drop(i, plac[i]);
    }

    for (i = 1; i <= MAXOBJ; i++) {
	if (treasr(i)) {
	    g.prop[i] = -1;
	    g.tally++;
	}
    }

    newtravel = TRUE;
    g.place[BOOK] = -1;
    insert(BOOK, SAFE);
    g.place[WATER] = -1;
    insert(WATER, BOTTLE);
    g.prop[BOTTLE] = 8;
    return;
}
